<?php
/**
 * --------------------------------------------------------------
 * 调试工具函数库
 * Author: zd <kfzphp@126.com>
 * Date: 2018-06-01
 * Project: kfzphp.com
 * --------------------------------------------------------------
 */

/**
 * 格式化打印输出值，结束不停止
 * @param  [type]     $val [description]
 * @return [type]          [description]
 */
function pf($val)
{
    if (is_string($val) || is_int($val)) {
        echo "<pre>";
        echo $val;
    } else if (is_object($val) || is_bool($val)) {
        echo "<pre>";
        var_dump($val);
    } else {
        echo "<pre>";
        print_r($val);
    }
}

/**
 * 格式化打印输出值，结束停止
 * @param  [type]     $val [description]
 * @return [type]          [description]
 */
function pt($val)
{
    pf($val);
    exit;
}

/**
 * 输出系统中所有的变量
 * @return [type]     [description]
 */
function pc()
{
    pt(get_defined_constants());
}

/**
 * 测试人员调试
 * @author zd
 * @param  [type] $val [description]
 * @return [type]      [description]
 */
function pp($val)
{
    $openid = $GLOBALS['_SESSION']['openid'];
    $opentel = $GLOBALS['_SESSION']['opentel'];
    if(!empty($openid) && in_array($openid, array_filter(my_array_column(config('TEST_USERS'), 'openid')))) {
        pt($val);
    } else if(!empty($opentel) && in_array($opentel, array_filter(my_array_column(config('TEST_USERS'), 'opentel')))) {
        pt($val);
    }
}

/**
 * html信息打印输出
 * @param  [type]     $html [html代码]
 * @return [type]           [把字符转换为html实体]
 */
function phtml($html)
{
    echo "htmlentities: <br /> ";
    echo htmlentities($html, ENT_QUOTES, "UTF-8");
    exit;
}

/**
 * 获取开始时间
 * @return [type]     [开始时间戳]
 */
function php_start()
{
    return microtime(true);
}
/**
 * 获取结束与开始的时间差
 * @param  [type]     $start [开始时间戳]
 * @return [type]            [耗时秒数]
 */
function php_stop($start)
{
    $stop = microtime(true);
    // return '耗时' . round($stop - $start, 3) . '秒';
    return gmdate('H:i:s', round($stop - $start, 3));
    exit;
}
/**
 * 错误显示
 * @return [type] [description]
 */
function err_show()
{
    ini_set("display_errors", "On");
    error_reporting(E_ALL);
}